package com.zm.se.mapper.EquipmentMapper;

import com.zm.se.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface EquMapper {

 /**
  * 信息添加
  * @param
  * @return
  */

  Integer delEqu(Integer id);
  Integer updateEqu(Equipment equipment);


    List<Equipment> equhistory(Integer page);
    /**
     * 显示器材数量和名称
     * @return
     */
    List<Map> showlist();

   Equipment findEquById(Integer id);

    /**
     * 显示价目表
     * @return
     */
    List<Map> showprice();
    /**
     * 显示供应商
     * @return
     */
    List<Map> showsup();

    /**
     * 获取借用申请表
     * @return
     */
    List<Borrow> showBorrow(Integer page);
    /**
     *录入教职工表
     * @param equipment
     * @return
     */
    Integer InsertEqu(Equipment equipment);

    /**
     * 辅助录入器材表
     * @param equipment
     * @return
     */
    Integer selectCount(Equipment equipment);
    /**
     * 辅助录入价格表
     * @param price
     * @return
     */
    Integer selectCountPrice(Price price);
    /**
     * 插入借用记录
     * @param borrow
     * @return
     */
    Integer borrow(Borrow borrow);

    /**
     * 录入完毕后整理数据库数据
     * @param ename
     * @param enumber
     * @return
     */
    Integer orderdatabase(@Param(value = "ename") String ename, @Param(value = "enumber") Integer enumber,@Param(value = "unit")String unit);

    /**
     * 向price表插入信息

     * @return
     */
    List<Price> orderprice();

    /**
     * 分离供应商信息，并整理入供应商标
     * @param sup   供应商名称
     * @param phone   供应商联系方式
     * @param address   供应商地址
     * @param email   供应商邮箱
     * @return
     */
    Integer ordersup(String sup,String phone,String address,String email);

    /**
     * 上传完excel后，经由上面接口整理数据到orderequ表，再将equpiment清空避免下一次录入后导致数据不准确
     * @return
     */
    /**
     * 清空器材整理表
     * @return
     */
    Integer truncateorderequ();
    /**
     * 清空供应商标
     * @return
     */
    Integer truncatesup();

    Integer truncatePrice();

    Integer truncateEqu();

    Integer addPurchase(Purchase purchase);


    /**
     * 查询器材整理表
     * @return
     */
    List<Equipment> orderequlist(Integer page);
    /**
     * 查询价格表
     * @return
     */
    List<Equipment> pricelist(Integer page);
    /**
     * 查询供应商表
     * @return
     */
    List<Equipment> suplist(Integer page);
    /**
     * 统计借出各种器材总数:key,value。取值与新器材整理表相减
     * @return
     */
    List<Map> borrowsum();

    /**
     * 从整理器材表中，按器材名称查找该器材的剩余数量
     * @param ename
     * @return
     */
    Integer findEnumberByEname(String ename);

    /**
     * 借用后对整理数据表的修改
     * @param ename
     * @param enumber
     * @return
     */
    boolean updateOrderEqu(@Param(value = "ename") String ename, @Param(value = "enumber") Integer enumber);

    /**
     *录入价格表
     * @param price
     * @return
     */
    Integer insertPrice2(String ename,double price,String sup);
    Integer insertPrice(Price price);

    /**
     * 按员工名查询，该员工的申请记录
     * @param empname
     * @return
     */
    List<Borrow> showreturn(String empname,Integer page);

    /**
     * 按id查找记录
     * @param id
     * @return
     */
    Borrow findById(Integer id);


    /**
     * 修改借用记录信息

     * @return
     */
    Integer updateBorrow(Borrow borrow);

    /**
     * 删除借用记录
     * @param id
     * @return
     */
    Integer delBorrow(Integer id);

    Integer delPurchase(Integer id);
    /**
     * 根据器材名和品牌查询其单价
     * @param ename
     * @param sup
     * @return
     */
    Integer selectPriceByEnameSup(String ename,String sup);

    /**
     * 添加报废器材信息，最终在采购表中统计数量
     * @param scrap
     * @return
     */
    Integer insertScrap(Scrap scrap);

    /**
     * 查询采购表信息
     * @return
     */
    List<Purchase> selectAllPurchase();

    /**
     * 分页展示采购表
     * @return
     */
    List<Purchase> showPurchase(Integer page);

    /**
     * 抽取报废记录表中的器材名称和对应的器材数，形成采购表
     * @return
     */
    List<Scrap> PurchaseList();

    /**
     * 将上面查出来的数据插入到采购表中
     * @param scrap
     * @return
     */
    Integer insertPurchase(Scrap scrap);

    /**
     * 查询报废表中的记录
     * @return
     */
    List<Scrap> showScrap(Integer page);

    /**
     * 修改报废记录信息
     * @return
     */
    Scrap findScrapById(Integer id);
    Integer delScrap(Integer id);

    /**
     * 按id查询采购表某记录
     * @param id
     * @return
     */
    Purchase findPurchaseById(Integer id);

    /**
     * 修改采购表信息
     * @return
     */
    boolean updatePurchase(Purchase purchase);

    /**
     *selecter>option标签内容,器材名
     * @return
     */
    List<String> selecter();
    /**
     *selecter>option标签内容，器材品牌
     * @return
     */
    List<String> selectersup();

    boolean truncatepurchase();
}
